package com.ruoyi.system.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 订单对象 p_store_order
 *
 * @author ruoyi
 * @date 2022-08-01
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("p_store_order")
public class PStoreOrder extends BaseEntity {

    private static final long serialVersionUID=1L;

    /**
     * 订单ID
     */
    @TableId(value = "id")
    private Long id;
    /**
     * 订单号
     */
    private String orderId;
    /**
     * 用户id
     */
    private Long uid;
    /**
     * 用户姓名
     */
    private String realName;
    /**
     * 用户电话
     */
    private String userPhone;
    /**
     * 详细地址
     */
    private String userAddress;
    /**
     * 运费金额
     */
    private BigDecimal freightPrice;
    /**
     * 订单商品总数
     */
    private Integer totalNum;
    /**
     * 订单总价
     */
    private BigDecimal totalPrice;
    /**
     * 邮费
     */
    private BigDecimal totalPostage;
    /**
     * 实际支付金额
     */
    private BigDecimal payPrice;
    /**
     * 商品单价
     */
    @TableField(exist = false)
    private BigDecimal price;
    /**
     * 支付邮费
     */
    private BigDecimal payPostage;
    /**
     * 抵扣金额
     */
    private BigDecimal deductionPrice;
    /**
     * 优惠券id
     */
    private Long couponId;
    /**
     * 优惠券金额
     */
    private BigDecimal couponPrice;
    /**
     * 支付状态
     */
    private String paid;
    /**
     * 支付时间
     */
    private Date payTime;
    /**
     * 支付方式
     */
    private String payType;
    /**
     * 订单状态（0：待发货；1：待收货；2：已收货，待评价；3：已完成；）
     */
    private String status;
    /**
     * 0 未退款 1 申请中 2 已退款 3 退款中
     */
    private String refundStatus;
    /**
     * 退款图片
     */
    private String refundReasonWapImg;
    /**
     * 退款用户说明
     */
    private String refundReasonWapExplain;
    /**
     * 前台退款原因
     */
    private String refundReasonWap;
    /**
     * 不退款的理由
     */
    private String refundReason;
    /**
     * 退款时间
     */
    private Date refundReasonTime;
    /**
     * 退款金额
     */
    private BigDecimal refundPrice;
    /**
     * 快递名称/送货人姓名
     */
    private String deliveryName;
    /**
     * 发货类型
     */
    private String deliveryType;
    /**
     * 快递单号/手机号
     */
    private String deliveryId;
    /**
     * 消费赚取积分
     */
    private Integer gainIntegral;
    /**
     * 使用积分
     */
    private Integer useIntegral;
    /**
     * 给用户退了多少积分
     */
    private Integer backIntegral;
    /**
     * 备注
     */
    private String mark;
    /**
     * 管理员备注
     */
    private String remark;
    /**
     * 商户ID
     */
    private Integer merId;
    /**
     *
     */
    private Integer isMerCheck;
    /**
     * 拼团商品id0一般商品
     */
    private Long combinationId;
    /**
     * 拼团id 0没有拼团
     */
    private Long pinkId;
    /**
     * 成本价
     */
    private BigDecimal cost;
    /**
     * 秒杀商品ID
     */
    private Long seckillId;
    /**
     * 砍价id
     */
    private Long bargainId;
    /**
     * 核销码
     */
    private String verifyCode;
    /**
     * 门店id
     */
    private Long storeId;
    /**
     * 配送方式 1=快递 ，2=门店自提
     */
    private String shippingType;
    /**
     * 店员id/核销员id
     */
    private Long clerkId;
    /**
     * 支付渠道(0微信公众号1微信小程序2余额)
     */
    private String isChannel;
    /**
     * 消息提醒
     */
    private String isRemind;
    /**
     * 快递公司简称
     */
    private String deliveryCode;
    /**
     * 用户拼团活动id 0没有
     */
    private Long bargainUserId;
    /**
     * 订单类型:0-普通订单，1-视频号订单
     */
    private String type;
    /**
     * 商品总价
     */
    private BigDecimal proTotalPrice;
    /**
     * 改价前支付金额
     */
    private BigDecimal beforePayPrice;
    /**
     * 是否改价,0-否，1-是
     */
    private String isAlterPrice;
    /**
     * 商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号
     */
    private String outTradeNo;

    /**
     * 发货时间
     */
    private Date deliveryTime;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    @TableLogic
    private String delFlag;

    @TableField(exist = false)
    private String image;

    @TableField(exist = false)
    private String storeName;

    /**
     * 订单总价格
     */
    @TableField(exist = false)
    private BigDecimal total;
}
